# -*- encoding: utf-8 -*-

class InsertionSort:
	'''Algoritmo de ordenação por inserção.'''
	
	def __init__(self, unsortedList):
		'''Construtor da classe
		É chamado o método responsável pela ordenação da lista
		@param unsortedList -> lista que vai ser ordenada
		'''

		self.unsortedList = unsortedList
		self.sort(unsortedList)
	
	def sort(self, unsortedList):
		'''Percorre uma lista da esquerda para a
	    direita e à medida que avança vai deixando os elementos mais à
	    esquerda ordenados.
		@param unsortedList -> lista que vai ser ordenada
		'''
		self.unsortedList = unsortedList
		for j in range(1, len(unsortedList)):
			key = unsortedList[j]
			i = j - 1
			while (i >= 0) and (unsortedList[i] > key):
				unsortedList[i + 1] = unsortedList[i]
				i = i - 1
			unsortedList[i + 1] = key

